/**
 * Глобальные скрипты для всего сайта
 */

$(document).ready(function () {
	$('.overlay').parent()
		.unbind('mouseover').mouseover(function () {$(this).children(':first').show()})
		.unbind('mouseout').mouseout(function () {$(this).children(':first').hide()});

	$('.overlayButton').unbind('click').click(function () {
	    
	});

    // Клик по лупе на визитке
    $(".zoomCard").click(function(e){
        var cardDiv = $(this).parents(".cardImage").first();
        var imgUrl = cardDiv.find(".card").first().attr("src");
        var cardTitle = cardDiv.find(".company").first().text();
        $.fancybox.open({
            href: imgUrl,
            title: cardTitle
        });
    });

    // Клик по лупе на объявлениях
    $(".ads .zoomAdv").click(function(){
        var advDiv = $(this).parents(".ads").first();
        var imgurl = advDiv.data("imageurl");
        var title = advDiv.find(".adsTitle").first().text();
        $.fancybox.open({
            href: imgurl,
            title: title
        });
    });

    // Биндим перемещение гигабаттона
    $(window).resize(function(){
        $("#gigaButton").css("position","fixed").css("left",1050).css("top",window.innerHeight);
        $("#notificationsHolder").css("left",window.innerWidth/2 - 150).css("top",0);
    });
    $(window).resize();

    // Раздвижка информации по категории в динамическом списке категорий
    $(".dynamicCategories .dynamicCategory .categoriesDetailsToggle").click(function(e){
        $(this).toggleClass("expandCollapseButtonActive");
        $(this).parents(".dynamicCategory").first().find(".categoryStatistic").slideToggle("slow");
    });

    // Переключаем картинки значков добавить в избранное при наведении
    $(".ads").mouseenter(function(e){
        $(this).find(".addFave").addClass("addFaveActive");
    }).mouseleave(function(e){
        $(this).find(".addFave").removeClass("addFaveActive");
    });

});

/**
 * Глобальный управляющий объект
 */
function Global(){

    /**
     * Выполняет аяксовый POST запрос к указанному url с указанными параметрами и обрабатывает результат в виде Json объекта
     * @param config - конфигурационный объект, имеет следующие параметры?
     *        - url - куда выполнять запрос
     *        - params - массив параметров к запросы
     *        - success - функция выполняющаяся в случае успешного запроса
     *        - failure - функция выполняющаяся если запрос вернулся с ошибкой
     */
    this.ajax = function(config){
        $.ajax({
            type: 'POST',
            url: config.url,
            data: config.params,
            dataType: 'json',
            success: function(data,status,request){
                if (config.success != undefined){
                    config.success(data);
                }
            },
            error: function(request,status,obj){
                if (config.failure != undefined){
                    config.failure(request,status,obj);
                }
            }
        });
    };

    /**
     * Отображает нотификацию в верхнем окне для нотификаций
     * @param text - текст нотификаций
     * @param delay - задержка через которую нотификация исчезнет
     */
    this.showNotification = function(text,delay){
        var notification = $("<div class='notification'>"+text+"</div>");
        notification.appendTo($("#notificationsHolder"));
        notification.fadeIn("slow",function(){
            setTimeout(function(){
                notification.fadeOut("slow",function(){
                    notification.remove();
                });
            },delay);
        });
    }
}
var global = new Global();